package ch.penas.web;

import java.io.Serializable;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.apache.log4j.Logger;


import ch.penas.business.dom.Competence;
import ch.penas.business.dom.FormateurCompetence;
import ch.penas.business.service.FormateurCompetenceService;
import ch.penas.business.service.FormateurCompetenceServiceImpl;

/** @author Daniel */
@ManagedBean(name = "manageBeanFormateurCompetence")
@ViewScoped
public final class ManageBeanFormateurCompetence implements Serializable {

	/**La serialization de la class ManageBeanFormateurCompetence pour question de securiter.*/
    private static final long serialVersionUID = 7821547244981771579L;
    
    private static final Logger LOGGER = Logger.getLogger(ManageBeanFormateurCompetence.class);
    
    private Competence mCompetence;
    
    /** mFormateurCompetence est egale au FormateurCompetence. */
    private FormateurCompetence mFormateurCompetence;
    
    /** mService est egale au service de FormateurCompetence. */
    private FormateurCompetenceService mService;

    /** Constructeur par defaut de la class ManageBeanFormateurCompetence. */
    public ManageBeanFormateurCompetence() {
    	this.mCompetence = new Competence();
        this.mFormateurCompetence = new FormateurCompetence();
        this.mService = new FormateurCompetenceServiceImpl();
    }
    
    /** Permet de lier des competence a des formateurs.
     *
     * @return successFormateurCompetence si le lien c'est bien passer !
     */
    public String add() {    	
        this.mService.add(this.mFormateurCompetence);
        this.mFormateurCompetence = new FormateurCompetence();
        return "successFormateurCompetence";
    }
    
    /** Permet de supprimer des competence lier a un ou des utilisateurs.
    *
    * @return successDeleteCompetenceFormateur si la suppresion c'est bien passer !
    */
   public String del() {
       this.mService.del(this.mFormateurCompetence);
       this.mFormateurCompetence = new FormateurCompetence();
       return "successDeleteFormateurCompetence";
   }
    
    /** Permet de recuperer la valeur de mFormateurCompetence.
     *
     * @return mFormateurCompetence qui est egale a une competence lier a un formateur
     */
    public FormateurCompetence getFormateurCompetence() {
        return this.mFormateurCompetence;
    }
    
    /** Permet de recuperer la valeur de mService.
     *
     * @return mService qui est egale au service une competence lier a un formateur
     */
    public FormateurCompetenceService getService() {
        return this.mService;
    }

    /** Permet de recuperer la valeur de LOGGER.
     *
     * @return LOGGER qui est egale au LOGGER
     */
	public static Logger getLogger() {
		return LOGGER;
	}
}